package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 航船状态对象 usv_boat_status
 *
 * @author lwq
 * @date 2021-07-02
 */
@Data
@ApiModel("航船状态模型")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value ="sys_boat_status")
public class SysBoatStatus extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @ApiModelProperty(value = "ID")
    @TableId(type = IdType.AUTO)
    private long id;

    /** 航船编号 */
    @Excel(name = "航船编号")
    @ApiModelProperty(value = "航船编号")
    private String boatSn;

    /** 任务ID */
    @Excel(name = "任务ID")
    @ApiModelProperty(value = "任务ID-关联sys-task表主键id")
    private long taskId;

    /** 无人船ID */
    @Excel(name = "无人船ID")
    @ApiModelProperty(value = "无人船ID-关联sys-device_info表主键id")
    private long deviceId;

    /** 路径ID */
    @Excel(name = "路径ID")
    @ApiModelProperty(value = "路径ID-关联sys-route表主键id")
    private long routeId;

    /** 模式：0x00 岸基遥控;0x01 云端遥控;0x02 云端自动 */
    @Excel(name = "模式：0x00 岸基遥控;0x01 云端遥控;0x02 云端自动")
    @ApiModelProperty(value = "模式：0x00 岸基遥控;0x01 云端遥控;0x02 云端自动")
    private int model;

    /** 状态：0x00 停止;0x01 启动;0x02 请求控制中 */
    @Excel(name = "状态：0x00 停止;0x01 启动;0x02 请求控制中")
    @ApiModelProperty(value = "状态：0x00 停止;0x01 启动;0x02 请求控制中")
    private int status;

    /** 经度 */
    @Excel(name = "经度")
    @ApiModelProperty(value = "经度")
    private double longitude;

    /** 纬度 */
    @Excel(name = "纬度")
    @ApiModelProperty(value = "纬度")
    private double latitude;

    /** 艏向(真北), 单位: deg, 范围:0 ~ 359.99 */
    @Excel(name = "艏向(真北), 单位: deg, 范围:0 ~ 359.99")
    @ApiModelProperty(value = "艏向(真北), 单位: deg, 范围:0 ~ 359.99")
    private float heading;

    /** 纵摇，单位: deg, 范围: -90 ~ 90 */
    @Excel(name = "纵摇，单位: deg, 范围: -90 ~ 90")
    @ApiModelProperty(value = "纵摇，单位: deg, 范围: -90 ~ 90")
    private float pitch;

    /** 横摇单位: deg, 范围:-180 ~ 180 */
    @Excel(name = "横摇单位: deg, 范围:-180 ~ 180")
    @ApiModelProperty(value = "横摇单位: deg, 范围:-180 ~ 180")
    private float roll;

    /** 速度 */
    @Excel(name = "速度")
    @ApiModelProperty(value = "速度")
    private float speed;

    /** "GNSS quality;0x00 无定位;0x01 状态差;0x02 状态好;0x05 RTK" */
    @Excel(name = "GNSS quality;0x00 无定位;0x01 状态差;0x02 状态好;0x05 RTK")
    @ApiModelProperty(value = "GNSS quality;0x00 无定位;0x01 状态差;0x02 状态好;0x05 RTK")
    private int GNSS_status;

    /** "控制模式: 0x00表示急停， 0x01表示停止，0x02表示正常" */
    @Excel(name = "控制模式: 0x00表示急停， 0x01表示停止，0x02表示正常")
    @ApiModelProperty(value = "控制模式: 0x00表示急停， 0x01表示停止，0x02表示正常")
    private int command_mode;

    /** "信号来源: 0x01图传，0x02数传，0x03云端，0x05自动" */
    @Excel(name = "信号来源: 0x01图传，0x02数传，0x03云端，0x05自动")
    @ApiModelProperty(value = "信号来源: 0x01图传，0x02数传，0x03云端，0x05自动")
    private int signal_mode;

    /** "连接状态，表示每一种通信的链路是否正常" */
    @Excel(name = "连接状态，表示每一种通信的链路是否正常")
    @ApiModelProperty(value = "连接状态，表示每一种通信的链路是否正常")
    private int connection_status;

    /** "waypoint的来源，0x01表示云端设定，0x00表示岸基设定" */
    @Excel(name = "waypoint的来源，0x01表示云端设定，0x00表示岸基设定")
    @ApiModelProperty(value = "waypoint的来源，0x01表示云端设定，0x00表示岸基设定")
    private int waypoints_source;

    /** "控制是否允许云端接管，0x01表示云端接管，0x00表示云端没有接管" */
    @Excel(name = "控制是否允许云端接管，0x01表示云端接管，0x00表示云端没有接管")
    @ApiModelProperty(value = "控制是否允许云端接管，0x01表示云端接管，0x00表示云端没有接管")
    private int Is_cloud_control;

    /** "图传电台通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好" */
    @Excel(name = "图传电台通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好")
    @ApiModelProperty(value = "图传电台通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好")
    private int HFRadio_RSSI;

    /** "数传电台通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好" */
    @Excel(name = "数传电台通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好")
    @ApiModelProperty(value = "数传电台通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好")
    private int LFRadio_RSSI;

    /** ""云端通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好"" */
    @Excel(name = "云端通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好")
    @ApiModelProperty(value = "云端通信的RSSI，0x00 0x01 0x02 0x03，越大信号越好")
    private int Cloud_RSSI;

    /** "轨迹跟踪状态" */
    @Excel(name = "轨迹跟踪状态")
    @ApiModelProperty(value = "轨迹跟踪状态")
    private int path_follow_status;

    /** "障碍物检测状态" */
    @Excel(name = "障碍物检测状态")
    @ApiModelProperty(value = "障碍物检测状态")
    private int collision_risk_status;

    /** 马达转速 */
    @Excel(name = "马达转速")
    @ApiModelProperty(value = "马达转速")
    private String motorSpeed;

    /** 记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "记录时间")
    private Date time;
}
